﻿using System;
using System.Collections.Generic;
using System.Text;

namespace DTO
{
    public class AliPayNotifyInput
    {
        /// <summary>
        ///  是否有效的支付宝回调 验证签名通过
        /// </summary>
        public bool IsSafe { get; set; }
        /// <summary>
        /// 通知时间
        /// </summary>
        public string notify_time { get; set; }
        /// <summary>
        /// 通知类型
        /// </summary>
        public string notify_type { get; set; }
        /// <summary>
        /// 通知校验id
        /// </summary>
        public string notify_id { get; set; }
        /// <summary>
        /// 支付宝分配给开发者的应用Id
        /// </summary>
        public string app_id { get; set; }
        /// <summary>
        ///  编码格式，如utf-8、gbk、gb2312等
        /// </summary>
        public string charset { get; set; }
        /// <summary>
        /// 调用的接口版本
        /// </summary>
        public string version { get; set; }
        /// <summary>
        /// 签名类型
        /// </summary>
        public string sign_type { get; set; }
        /// <summary>
        ///签名
        /// </summary>
        public string sign { get; set; }
        /// <summary>
        /// 支付宝交易号
        /// </summary>
        public string trade_no { get; set; }
        /// <summary>
        /// 商户订单号
        /// </summary>
        public string out_trade_no { get; set; }
        /// <summary>
        /// 商户业务号，主要是退款通知中返回退款申请的流水号
        /// </summary>
        public string out_biz_no { get; set; }
        /// <summary>
        /// 买家支付宝用户号
        /// </summary>
        public string buyer_id { get; set; }
        /// <summary>
        /// 买家支付宝账号
        /// </summary>
        public string buyer_logon_id { get; set; }
        /// <summary>
        /// 卖家支付宝用户号
        /// </summary>
        public string seller_id { get; set; }
        /// <summary>
        /// 卖家支付宝账号
        /// </summary>
        public string seller_email { get; set; }
        /// <summary>
        /// 交易状态 WAIT_BUYER_PAY 交易创建，等待买家付款， TRADE_CLOSED 未付款交易超时关闭，或支付完成后全额退款， TRADE_SUCCESS 交易支付成功， TRADE_FINISHED 交易结束，不可退款
        /// </summary>
        public string trade_status { get; set; }
        /// <summary>
        /// 订单金额(元)
        /// </summary>
        public double total_amount { get; set; }
        /// <summary>
        /// 实收金额 商家在交易中实际收到的款项，单位为元
        /// </summary>
        public double receipt_amount { get; set; }
        /// <summary>
        ///  开票金额 用户在交易中支付的可开发票的金额
        /// </summary>
        public double invoice_amount { get; set; }
        /// <summary>
        ///  付款金额 用户在交易中支付的金额
        /// </summary>
        public double buyer_pay_amount { get; set; }
        /// <summary>
        /// 集分宝金额 使用集分宝支付的金额
        /// </summary>
        public double point_amount { get; set; }
        /// <summary>
        /// 总退款金额
        /// </summary>
        public double refund_fee { get; set; }
        /// <summary>
        /// 订单标题
        /// </summary>
        public string subject { get; set; }
        /// <summary>
        /// 商品描述
        /// </summary>
        public string body { get; set; }
        /// <summary>
        /// 交易创建时间 该笔交易创建的时间。格式为yyyy-MM-dd HH:mm:ss
        /// </summary>
        public DateTime gmt_create { get; set; }
        /// <summary>
        /// 交易付款时间 该笔交易的买家付款时间。格式为yyyy-MM-dd HH:mm:ss
        /// </summary>
        public DateTime gmt_payment { get; set; }
        /// <summary>
        /// 交易退款时间 该笔交易的退款时间。格式为yyyy-MM-dd HH:mm:ss.S
        /// </summary>
        public DateTime gmt_refund { get; set; }
        /// <summary>
        /// 交易结束时间 该笔交易结束时间。格式为yyyy-MM-dd HH:mm:ss
        /// </summary>
        public DateTime gmt_close { get; set; }
        /// <summary>
        /// 支付金额信息 支付成功的各个渠道金额信息  [{“amount”:“15.00”,“fundChannel”:“ALIPAYACCOUNT”}]
        /// </summary>
        public string fund_bill_list { get; set; }
        /// <summary>
        /// 回传参数，如果请求时传递了该参数，则返回给商户时会在异步通知时将该参数原样返回。
        /// </summary>
        public string passback_params { get; set; }
        /// <summary>
        /// 优惠券信息 本交易支付时所使用的所有优惠券信息 
        /// </summary>
        public string voucher_detail_list { get; set; }
    }
}
